package Pacote1;

import grails.test.*
import les.*

class MalaDiretaTests extends functionaltestplugin.FunctionalTestCase {

	void testAdicionarIntegranteComSucesso() {
		get ("/usuario/login")

		form() {
			email = "jota@gmail.com"
			senha = "123456"
			click "entrar"
		}

		redirectEnabled = false

		get ("/integrante/create")

		form() {
			nome = "Filipe"
			email = "filipencavalcante@gmail.com"
			click "create"
		}
		
		redirectEnabled = true

		get ("/send/selecionarEmails")
		
		assertContentContains("Email do Integrante")

		form() {
			integrante = "Filipe"
			click "adicionar"
		}

		assertContentContains "filipencavalcante@gmail.com"
		assertContentContains "Remover Email"
	}
	
	void testAdicionarIntegranteComFracassoPoisIntegranteNaoTemEmail() {
		get ("/usuario/login")

		form() {
			email = "jota@gmail.com"
			senha = "123456"
			click "entrar"
		}

		redirectEnabled = false

		get ("/integrante/create")

		form() {
			nome = "Antonio"
			click "create"
		}
		
		redirectEnabled = true

		get ("/send/selecionarEmails")
		
		assertContentContains("Email do Integrante")

		form() {
			integrante = "Antonio"
			click "adicionar"
		}

		assertContentContains "Este integrante não possui email cadastrado"
	}
	
	void testAdicionarIntegranteComFracassoPoisIntegranteJaEstaNaMalaDireta(){
		get ("/usuario/login")

		form() {
			email = "jota@gmail.com"
			senha = "123456"
			click "entrar"
		}

		redirectEnabled = false

		get ("/integrante/create")

		form() {
			nome = "Filipe"
			email = "filipencavalcante@gmail.com"
			click "create"
		}
		
		redirectEnabled = true

		get ("/send/selecionarEmails")
		
		assertContentContains("Email do Integrante")

		form() {
			integrante = "Filipe"
			click "adicionar"
		}

		assertContentContains "filipencavalcante@gmail.com"
		assertContentContains "Remover Email"
		
		form() {
			integrante = "Filipe"
			click "adicionar"
		}
		
		assertContentContains "Este integrante já esta contido na mala direta"
	}
	
	void testRemoverEmailComSucesso(){
		get ("/usuario/login")

		form() {
			email = "jota@gmail.com"
			senha = "123456"
			click "entrar"
		}

		redirectEnabled = false

		get ("/integrante/create")

		form() {
			nome = "Filipe"
			email = "filipencavalcante@gmail.com"
			click "create"
		}
		
		redirectEnabled = true

		get ("/send/selecionarEmails")
		
		assertContentContains("Email do Integrante")

		form() {
			integrante = "Filipe"
			click "adicionar"
		}

		assertContentContains "filipencavalcante@gmail.com"
		assertContentContains "Remover Email"
		
		click "Excluir"
		
		assertContentContains "O email não pertence mais à mala direta"
	}
	
	
}